Web services are used by businesses to interact via distributed environments, such as the Internet or World Wide Web. To ensure that these interactions are accomplished successfully, protocols must be in place for carrying messages to and from participants, and specific business applications must be in place at each participants end. These interactions, by their very nature are message driven. For example, a buyer sends a purchase order to a seller. The seller then checks its inventory to determine if it can provide the ordered items. The seller then sends an acknowledgement back to the buyer with a price. Finally, the buyer then accepts or rejects the sellers offer (and possibly places another order). As evident in this example, each participant's business application reacts to the receipt of messages. Also illustrated in this example is that these types of web service transactions may take place over long periods of time. Further, each participant may conduct activities at its end, such as tracking messages and updating the status of each activity.
In order for businesses to use web services, the web services should be user friendly. That is, complex, intricate programming steps should be transparent to the participant. The participant should be able to generate high level business applications utilizing nomenclature and concepts familiar to the participant and normally used in the specific business. However, this may be difficult in scenarios in which the sequence and/or timing of incoming and outgoing messages are not known prior to receipt and/or transmission.
Convenient, user friendly, techniques for processing specific web service scenarios, which do not require a participant to be intimately familiar with the complex processing steps necessarily to ensure proper execution of the message driven web service is desired.